/**
 * 版权所有(C)，上海海鼎信息工程股份有限公司，2006，所有权利保留。
 * 
 * 项目名：	rumba
 * 文件名：	EntityChangeLogMgr.java
 * 模块说明：	
 * 修改历史：
 * 2006-5-16 - lxm, zhangyanbo - 创建。
 */
package com.hd123.rumba.log;

import java.util.List;

import net.sf.hibernate.Hibernate;
import net.sf.hibernate.HibernateException;
import net.sf.hibernate.type.NullableType;

import com.hd123.rumba.exception.BusinessException;

/**
 * 实体属性修改日志 | 管理员 | 实现类
 * 
 * @author lxm
 * @authro zhangyanbo
 * 
 */
public class EntityChangeLogMgr extends EntityLogMgr implements IEntityChangeLogMgr {

  public EntityChangeLogMgr() {
    super();
    this.registryClass("com.hd123.rumba.log.IEntityChangeLog",
        "com.hd123.rumba.log.EntityChangeLog");
  }

  public IEntityLog createLog() {
    return new EntityChangeLog();
  }

  public List<IEntityChangeLog> getLogsByField(String entityUuid, String fieldName)
      throws BusinessException, HibernateException {
    this.checkParameterNotNull(entityUuid, "entityUuid");
    this.checkParameterNotNull(fieldName, "fieldName");

    List<IEntityChangeLog> list = getSession().find(
        "from " + this.lookupClass(IEntityChangeLog.class)
            + " e1 where e1.entityUuid = ? and e1.fieldName = ?", new Object[] {
            entityUuid, fieldName }, new NullableType[] {
            Hibernate.STRING, Hibernate.STRING });
    return list;
  }

}
